{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 9 最终确定模型 再调n_estimators参数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from xgboost import XGBClassifier\n",
    "import xgboost as xgb\n",
    "\n",
    "import pandas as pd \n",
    "import numpy as np\n",
    "\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "from sklearn.model_selection import StratifiedKFold\n",
    "\n",
    "from sklearn.metrics import log_loss\n",
    "\n",
    "from matplotlib import pyplot\n",
    "import seaborn as sns\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 读取数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# read in data，数据在xgboost安装的路径下的demo目录,现在我们将其copy到当前代码下的data目录\n",
    "dpath = './data/'\n",
    "dtrain = xgb.DMatrix(dpath + 'RentListingInquries_FE_train.bin')\n",
    "dtest = xgb.DMatrix(dpath + 'RentListingInquries_FE_test.bin')\n",
    "train = pd.read_csv(dpath + 'RentListingInquries_FE_train.csv')\n",
    "test = pd.read_csv(dpath + 'RentListingInquries_FE_test.csv')\n",
    "\n",
    "\n",
    "\n",
    "# drop ids and get labels\n",
    "y_train = train['interest_level']\n",
    "train = train.drop([\"interest_level\"], axis=1)\n",
    "X_train = np.array(train)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "各类样本不均衡，交叉验证是采用StratifiedKFold，在每折采样时各类样本按比例采样"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 准备交叉验证\n",
    "kfold = StratifiedKFold(n_splits=5, shuffle=True, random_state=3)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "再次调整弱分类器数目"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def modelfit(alg, X_train, y_train, useTrainCV=True, cv_folds=None, early_stopping_rounds=100):\n",
    "    \n",
    "    if useTrainCV:\n",
    "        xgb_param = alg.get_xgb_params()\n",
    "        xgb_param['num_class'] = 3\n",
    "        \n",
    "        xgtrain = xgb.DMatrix(X_train, label = y_train)\n",
    "        \n",
    "        cvresult = xgb.cv(xgb_param, xgtrain, num_boost_round=alg.get_params()['n_estimators'], folds =cv_folds,\n",
    "                         metrics='mlogloss', early_stopping_rounds=early_stopping_rounds)\n",
    "        \n",
    "        n_estimators = cvresult.shape[0]\n",
    "        alg.set_params(n_estimators = n_estimators)\n",
    "        \n",
    "        print(cvresult)\n",
    "        #result = pd.DataFrame(cvresult)   #cv缺省返回结果为DataFrame\n",
    "        #result.to_csv('my_preds.csv', index_label = 'n_estimators')\n",
    "        cvresult.to_csv('my_preds4_2_3_699.csv', index_label = 'n_estimators')\n",
    "        \n",
    "        # plot\n",
    "        test_means = cvresult['test-mlogloss-mean']\n",
    "        test_stds = cvresult['test-mlogloss-std'] \n",
    "        \n",
    "        train_means = cvresult['train-mlogloss-mean']\n",
    "        train_stds = cvresult['train-mlogloss-std'] \n",
    "\n",
    "        x_axis = range(0, n_estimators)\n",
    "        pyplot.errorbar(x_axis, test_means, yerr=test_stds ,label='Test')\n",
    "        pyplot.errorbar(x_axis, train_means, yerr=train_stds ,label='Train')\n",
    "        pyplot.title(\"XGBoost n_estimators vs Log Loss\")\n",
    "        pyplot.xlabel( 'n_estimators' )\n",
    "        pyplot.ylabel( 'Log Loss' )\n",
    "        pyplot.savefig( 'n_estimators4_2_3_699.png' )\n",
    "    \n",
    "    #Fit the algorithm on the data\n",
    "    alg.fit(X_train, y_train, eval_metric='mlogloss')\n",
    "        \n",
    "    #Predict training set:\n",
    "    train_predprob = alg.predict_proba(X_train)\n",
    "    logloss = log_loss(y_train, train_predprob)\n",
    "\n",
    "        \n",
    "    #Print model report:\n",
    "    print(\"logloss of train :\" )\n",
    "    print(logloss)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "      test-mlogloss-mean  test-mlogloss-std  train-mlogloss-mean  \\\n",
      "0               1.086195           0.000083             1.086004   \n",
      "1               1.074235           0.000145             1.073873   \n",
      "2               1.062542           0.000147             1.061993   \n",
      "3               1.051245           0.000083             1.050501   \n",
      "4               1.040365           0.000092             1.039394   \n",
      "5               1.029726           0.000106             1.028562   \n",
      "6               1.019523           0.000205             1.018138   \n",
      "7               1.009615           0.000286             1.008024   \n",
      "8               1.000057           0.000343             0.998257   \n",
      "9               0.990754           0.000445             0.988773   \n",
      "10              0.981699           0.000491             0.979531   \n",
      "11              0.972887           0.000472             0.970512   \n",
      "12              0.964411           0.000500             0.961844   \n",
      "13              0.956080           0.000488             0.953335   \n",
      "14              0.948110           0.000480             0.945155   \n",
      "15              0.940271           0.000525             0.937127   \n",
      "16              0.932709           0.000485             0.929351   \n",
      "17              0.925335           0.000467             0.921787   \n",
      "18              0.918187           0.000542             0.914458   \n",
      "19              0.911352           0.000567             0.907427   \n",
      "20              0.904626           0.000584             0.900502   \n",
      "21              0.898118           0.000566             0.893795   \n",
      "22              0.891786           0.000558             0.887272   \n",
      "23              0.885579           0.000547             0.880868   \n",
      "24              0.879502           0.000547             0.874582   \n",
      "25              0.873535           0.000486             0.868432   \n",
      "26              0.867873           0.000556             0.862565   \n",
      "27              0.862288           0.000580             0.856791   \n",
      "28              0.856877           0.000618             0.851204   \n",
      "29              0.851541           0.000624             0.845685   \n",
      "...                  ...                ...                  ...   \n",
      "1390            0.581320           0.002408             0.427462   \n",
      "1391            0.581308           0.002400             0.427387   \n",
      "1392            0.581311           0.002409             0.427314   \n",
      "1393            0.581312           0.002409             0.427230   \n",
      "1394            0.581314           0.002401             0.427126   \n",
      "1395            0.581313           0.002403             0.427052   \n",
      "1396            0.581321           0.002402             0.426974   \n",
      "1397            0.581321           0.002404             0.426881   \n",
      "1398            0.581322           0.002404             0.426806   \n",
      "1399            0.581325           0.002405             0.426731   \n",
      "1400            0.581321           0.002404             0.426639   \n",
      "1401            0.581325           0.002415             0.426545   \n",
      "1402            0.581318           0.002421             0.426461   \n",
      "1403            0.581318           0.002409             0.426379   \n",
      "1404            0.581314           0.002405             0.426297   \n",
      "1405            0.581301           0.002416             0.426220   \n",
      "1406            0.581309           0.002416             0.426115   \n",
      "1407            0.581310           0.002425             0.426046   \n",
      "1408            0.581305           0.002418             0.425959   \n",
      "1409            0.581310           0.002417             0.425879   \n",
      "1410            0.581322           0.002414             0.425792   \n",
      "1411            0.581314           0.002418             0.425713   \n",
      "1412            0.581306           0.002420             0.425636   \n",
      "1413            0.581309           0.002420             0.425537   \n",
      "1414            0.581306           0.002423             0.425434   \n",
      "1415            0.581303           0.002419             0.425389   \n",
      "1416            0.581309           0.002420             0.425282   \n",
      "1417            0.581292           0.002428             0.425191   \n",
      "1418            0.581293           0.002417             0.425091   \n",
      "1419            0.581287           0.002406             0.425001   \n",
      "\n",
      "      train-mlogloss-std  \n",
      "0               0.000079  \n",
      "1               0.000139  \n",
      "2               0.000135  \n",
      "3               0.000075  \n",
      "4               0.000050  \n",
      "5               0.000045  \n",
      "6               0.000098  \n",
      "7               0.000152  \n",
      "8               0.000167  \n",
      "9               0.000228  \n",
      "10              0.000261  \n",
      "11              0.000225  \n",
      "12              0.000248  \n",
      "13              0.000211  \n",
      "14              0.000229  \n",
      "15              0.000275  \n",
      "16              0.000254  \n",
      "17              0.000233  \n",
      "18              0.000308  \n",
      "19              0.000435  \n",
      "20              0.000405  \n",
      "21              0.000467  \n",
      "22              0.000433  \n",
      "23              0.000467  \n",
      "24              0.000474  \n",
      "25              0.000413  \n",
      "26              0.000470  \n",
      "27              0.000494  \n",
      "28              0.000509  \n",
      "29              0.000486  \n",
      "...                  ...  \n",
      "1390            0.001163  \n",
      "1391            0.001158  \n",
      "1392            0.001158  \n",
      "1393            0.001186  \n",
      "1394            0.001199  \n",
      "1395            0.001193  \n",
      "1396            0.001204  \n",
      "1397            0.001197  \n",
      "1398            0.001197  \n",
      "1399            0.001216  \n",
      "1400            0.001239  \n",
      "1401            0.001248  \n",
      "1402            0.001238  \n",
      "1403            0.001222  \n",
      "1404            0.001225  \n",
      "1405            0.001198  \n",
      "1406            0.001201  \n",
      "1407            0.001211  \n",
      "1408            0.001217  \n",
      "1409            0.001206  \n",
      "1410            0.001224  \n",
      "1411            0.001230  \n",
      "1412            0.001220  \n",
      "1413            0.001222  \n",
      "1414            0.001235  \n",
      "1415            0.001241  \n",
      "1416            0.001237  \n",
      "1417            0.001229  \n",
      "1418            0.001230  \n",
      "1419            0.001226  \n",
      "\n",
      "[1420 rows x 4 columns]\n",
      "logloss of train :\n",
      "0.460349230004\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nWer/A7JPHmsIKchtAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xd1cceb8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#调整max_depth和min_child_weight之后再次调整n_estimators(6,4)\n",
    "xgb9 = XGBClassifier(\n",
    "        learning_rate =0.02,\n",
    "        n_estimators=2000,  #数值大没关系，cv会自动返回合适的n_estimators\n",
    "        max_depth=6,\n",
    "        min_child_weight=4,\n",
    "        gamma=0,\n",
    "        subsample=0.8,\n",
    "        colsample_bytree=0.8,\n",
    "        colsample_bylevel=0.7,\n",
    "        objective= 'multi:softprob',\n",
    "        reg_alpha = 0.1,\n",
    "        reg_lambda = 0.5,\n",
    "        seed=3)\n",
    "\n",
    "modelfit(xgb9, X_train, y_train, cv_folds = kfold)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xd35ae10>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "cvresult = pd.DataFrame.from_csv('my_preds4_2_3_699.csv')\n",
    "\n",
    "cvresult = cvresult.iloc[40:]\n",
    "# plot\n",
    "test_means = cvresult['test-mlogloss-mean']\n",
    "test_stds = cvresult['test-mlogloss-std'] \n",
    "        \n",
    "train_means = cvresult['train-mlogloss-mean']\n",
    "train_stds = cvresult['train-mlogloss-std'] \n",
    "\n",
    "x_axis = range(40,cvresult.shape[0]+40)\n",
    "        \n",
    "fig = pyplot.figure(figsize=(10, 10), dpi=100)\n",
    "pyplot.errorbar(x_axis, test_means, yerr=test_stds ,label='Test')\n",
    "pyplot.errorbar(x_axis, train_means, yerr=train_stds ,label='Train')\n",
    "pyplot.title(\"XGBoost n_estimators vs Log Loss\")\n",
    "pyplot.xlabel( 'n_estimators' )\n",
    "pyplot.ylabel( 'Log Loss' )\n",
    "pyplot.savefig( 'n_estimators_detail4_2_3_699.png' )\n",
    "\n",
    "pyplot.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "## 保存模型，便于后面测试使用"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "#保存模型\n",
    "import pickle\n",
    "pickle.dump(xgb9,open(\"xgb_model.pkl\",'wb'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
